package it.controllocredito.backend.io.persistence;

import java.sql.Date;
import java.util.Calendar;

import it.controllocredito.backend.utility.TipoChiamataEnum;
import android.content.ContentValues;

public class RegistroChiamateTable {

	protected static final String REGISTRO_CHIAMATE_TABLE = "CREATE TABLE IF NOT EXISTS " 
			+ RegistroChiamateMetaData.REGISTRO_CHIAMATE_TABLE
			+ " ("
			+ RegistroChiamateMetaData.ID
			+ " integer primary key autoincrement, "
			+ RegistroChiamateMetaData.REGISTRO_CHIAMATE_ANNO_KEY
			+ " integer not null, "
			+ RegistroChiamateMetaData.REGISTRO_CHIAMATE_MESE_KEY
			+ " integer not null, "
			+ RegistroChiamateMetaData.REGISTRO_CHIAMATE_GIORNO_KEY
			+ " integer not null, "
			+ RegistroChiamateMetaData.REGISTRO_CHIAMATE_GIORNO_SETTIMANA_KEY
			+ " integer not null, "
			+ RegistroChiamateMetaData.REGISTRO_CHIAMATE_ORA_KEY
			+ " TIME not null, "
			+ RegistroChiamateMetaData.REGISTRO_CHIAMATE_TIPO_KEY
			+ " text not null,"
			+ RegistroChiamateMetaData.REGISTRO_CHIAMATE_DURATA_KEY
			+ " bigint not null,"
			+ RegistroChiamateMetaData.REGISTRO_CHIAMATE_NUMERO_TEL_KEY
			+ " integer not null);";

	public static class RegistroChiamateMetaData {  // i metadati della tabella, accessibili ovunque
	       public static final String REGISTRO_CHIAMATE_TABLE = "registo_chiamate";
	       public static final String ID = "_id";
	       public static final String REGISTRO_CHIAMATE_ANNO_KEY = "anno";
	       public static final String REGISTRO_CHIAMATE_MESE_KEY = "mese";
	       public static final String REGISTRO_CHIAMATE_GIORNO_KEY = "giorno";
	       public static final String REGISTRO_CHIAMATE_GIORNO_SETTIMANA_KEY = "giorno_settimana";
	       public static final String REGISTRO_CHIAMATE_ORA_KEY = "ora";
	       public static final String REGISTRO_CHIAMATE_TIPO_KEY = "tipo";
	       public static final String REGISTRO_CHIAMATE_DURATA_KEY = "durata";
	       public static final String REGISTRO_CHIAMATE_NUMERO_TEL_KEY = "numero_tel";
	}

	public static ContentValues createRecord(int anno, int mese, int giorno,
			int giornoSettimana, java.sql.Time ora, TipoChiamataEnum tipo,
			long durata, int numeroTel) { // metodo per inserire i dati
		ContentValues cv = new ContentValues();
		cv.put(RegistroChiamateMetaData.REGISTRO_CHIAMATE_ANNO_KEY, anno);
		cv.put(RegistroChiamateMetaData.REGISTRO_CHIAMATE_MESE_KEY, mese);
		cv.put(RegistroChiamateMetaData.REGISTRO_CHIAMATE_GIORNO_KEY, giorno);
		cv.put(RegistroChiamateMetaData.REGISTRO_CHIAMATE_GIORNO_SETTIMANA_KEY,
				giornoSettimana);
		cv.put(RegistroChiamateMetaData.REGISTRO_CHIAMATE_ORA_KEY,
				ora.toString());
		cv.put(RegistroChiamateMetaData.REGISTRO_CHIAMATE_TIPO_KEY,
				tipo.toString());
		cv.put(RegistroChiamateMetaData.REGISTRO_CHIAMATE_DURATA_KEY, durata);
		cv.put(RegistroChiamateMetaData.REGISTRO_CHIAMATE_NUMERO_TEL_KEY,
				numeroTel);
		return cv;
	}

	public static ContentValues createRecord(TipoChiamataEnum tipo,
			long durata, int numeroTel) { // metodo per inserire i dati
		ContentValues cv = new ContentValues();
		Calendar c = Calendar.getInstance(); 
		
		cv.put(RegistroChiamateMetaData.REGISTRO_CHIAMATE_ANNO_KEY, c.get(Calendar.YEAR));
		cv.put(RegistroChiamateMetaData.REGISTRO_CHIAMATE_MESE_KEY, c.get(Calendar.MONTH));
		cv.put(RegistroChiamateMetaData.REGISTRO_CHIAMATE_GIORNO_KEY, c.get(Calendar.DAY_OF_MONTH));
		cv.put(RegistroChiamateMetaData.REGISTRO_CHIAMATE_GIORNO_SETTIMANA_KEY,
				c.get(Calendar.DAY_OF_WEEK));
		cv.put(RegistroChiamateMetaData.REGISTRO_CHIAMATE_ORA_KEY,	new java.sql.Time(System.currentTimeMillis()).toString());
		cv.put(RegistroChiamateMetaData.REGISTRO_CHIAMATE_TIPO_KEY,
				tipo.toString());
		cv.put(RegistroChiamateMetaData.REGISTRO_CHIAMATE_DURATA_KEY, durata);
		cv.put(RegistroChiamateMetaData.REGISTRO_CHIAMATE_NUMERO_TEL_KEY,
				numeroTel);
		return cv;
	}

}